package com.siam.package_weixin_pay.entity;

import com.google.gson.annotations.SerializedName;
import lombok.Data;

@Data
public class TransferToUserResponse {
        @SerializedName("out_bill_no")
        public String outBillNo;

        @SerializedName("transfer_bill_no")
        public String transferBillNo;

        @SerializedName("create_time")
        public String createTime;

        @SerializedName("state")
        public TransferBillStatus state;

        @SerializedName("package_info")
        public String packageInfo;

        public enum TransferBillStatus {
                // 转账已受理
                @SerializedName("ACCEPTED")
                ACCEPTED,

                // 转账锁定资金中。如果一直停留在该状态，建议检查账户余额是否足够，如余额不足，可充值后再原单重试。
                @SerializedName("PROCESSING")
                PROCESSING,

                // 待收款用户确认，可拉起微信收款确认页面进行收款确认
                @SerializedName("WAIT_USER_CONFIRM")
                WAIT_USER_CONFIRM,

                // 转账中，可拉起微信收款确认页面再次重试确认收款
                @SerializedName("TRANSFERING")
                TRANSFERING,

                // 转账成功
                @SerializedName("SUCCESS")
                SUCCESS,

                // 转账失败
                @SerializedName("FAIL")
                FAIL,

                // 商户撤销请求受理成功，该笔转账正在撤销中
                @SerializedName("CANCELING")
                CANCELING,

                // 转账撤销完成
                @SerializedName("CANCELLED")
                CANCELLED
        }
}
